Instrucciones

  1. Esta tarea debe ser entregada en grupos de máximo 3 personas.
  2. Se debe enviar una carpeta comprimida que contenga: un archivo .Rproj (proyecto en R), un script y un breve informe en R Markdown con sus resultados, incluyendo tablas, gráficos, etc., según corresponda. El formato del infome puede ser word o pdf y se debe el archivo Rmd.
  3. El nombre del archivo comprimido debe ser “Tarea 3-R-Uchile Apellido 1-Apellido 2-Apellido 3”.
  4. El asunto del email con su tarea debe ser “Tarea 3-R-Uchile Apellido 1-Apellido 2-Apellido 3”.
  5. La fecha de entrega es el Sábado 13 de Octubre del 2018 hasta las 23:59 hrs al correo del curso: r2018uchile@gmail.com.

“The goal is to turn data into information, and information into insight”

Carly Fiorina, CEO de HP desde 1999 hasta 2005


Pregunta 1

Pregunta 1.1

Usted en la Tarea 1 (pregunta 1.5) tuvo que identificar el porcentaje de películas estrenadas por década. A partir del data frame obtenido, construya un pie chart usando la librería plotly. (20 puntos)

Pregunta 1.2

Considerando la Tarea 1 (pregunta 1.6), indentifique el presupuesto promedio (budget) por estado y presentelo esta vez utilizando el mapa de los Estados Unidos. (20 puntos)


Pregunta 2

A partir de las variables seleccionadas del World Development Indicators de su Tarea 2, represente en un mapa los valores que asume cada variable en 1990 y 2015.


Mapa Producto Interno Bruto

Mapa Producto Interno Bruto


Mapa Cuenta Corriente

Mapa Cuenta Corriente


Pregunta 3

Visite el sitio web http://datos.gob.cl/ y descargue una base de datos de su preferencia1, justificando su elección. Luego, represente los datos seleccionados en un mapa de una o varias de las comunas de la región Metropolitana. Los mapas vectoriales pueden ser descargados de https://www.bcn.cl.

data <- data %>% 
        rename(year = `AÑO`) %>% 
        na.omit()

init <- tibble(
          year = 2011,
          inversion = 0, long = 0, lat = 0
        )

fin <- tibble(
          year = 2016,
          inversion = 0, long = 0, lat = 0
        )

map_animate <- ggplot() + 
               geom_polygon(data = comunas, aes(x = long, y = lat, group = group), 
                   fill = "white", color = "black", size = .5, show.legend = FALSE)  + 
               theme_map() + 
               xlim(min(comunas$long),max(comunas$long)) + ylim(min(comunas$lat),
                    max(comunas$lat)) +
               geom_polygon(data = data, 
                            aes(x = long, y = lat, group = group, fill = inversion/1000000,
                                frame = year,
                                cumulative = TRUE), 
                            alpha = 0.5) + 
               geom_polygon(data = init, 
                            aes(x = long, y = lat, fill = inversion/1000000,
                                frame = year,
                                cumulative = TRUE), 
                            alpha = 0) +
               geom_polygon(data = fin, 
                            aes(x = long, y = lat, fill = inversion/1000000,
                                frame = year,
                                cumulative = TRUE), 
                            alpha = 0) + 
               labs(title = "Gasto MOP, ") +
               labs(fill = 'Gasto (MIllones)') + 
               labs(caption = 
                    "Mapa por Gabriel Cabrera, @Gabo_Cg\nFuente: Datos Gobierno de Chile") +
               theme(plot.title = element_text(hjust = 0.5, vjust = 0.05, size=25)) +
               theme(plot.caption = element_text(hjust = 0, color="gray40", size=15)) +
               theme(legend.position = c(.5, -.025), 
               legend.direction = "horizontal", 
               legend.title.align = 0,
               legend.key.size = unit(1.3, "cm"),
               legend.title=element_text(size=17), 
               legend.text=element_text(size=13)) + 
               geom_text(data = com_name, aes(label =  as.character(COMUNA), x = long, 
                                               y = lat), size = 3.5) 

gganimate(map_animate, interval = 0.2, title_frame =T, ani.width=1600, ani.height=1020, 
          dpi=850, "mop_2011_2016.gif")


Gasto Ministerio de obras públicas: Periodo 2011 - 2016

Gasto Ministerio de obras públicas: Periodo 2011 - 2016



  1. Debe contener las comunas de la región Metropolitana.

LS0tCnRpdGxlOiAiUGF1dGEgVGFyZWEgMyIKYXV0aG9yOiAgPGEgaHJlZj0iaHR0cHM6Ly9nY2FicmVyYWcucmJpbmQuaW8vIj4gPGgzPiBHYWJyaWVsIENhYnJlcmEgPC9oMz4gPC9hPiBcbmV3bGluZSBGYWN1bHRhZCBkZSBFY29ub23DrWEgeSBOZWdvY2lvcywgVW5pdmVyc2lkYWQgZGUgQ2hpbGUsIENoaWxlCmRhdGU6ICIyMDE4LTEwLTE1ICh1cGRhdGVkOiBgciBTeXMuRGF0ZSgpYCkiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRoZW1lOiAiY29zbW8iCiAgICBoaWdobGlnaHQ6ICJrYXRlIgogICAgdG9jOiB0cnVlCiAgICBjc3M6IHN0eWxlcy5jc3MKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIHRvY19kZXB0aDogMgogICAgdG9jX2Zsb2F0OgogICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQogICAgY29kZV9mb2xkaW5nOiAic2hvdyIKICAgIGluY2x1ZGU6CiAgICAgIGFmdGVyX2JvZHk6IGZvb3Rlci5odG1sCi0tLQoKCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIGV2YWwgPSBUUlVFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFKQpgYGAKCi0tLQoKPGNlbnRlcj4gPGI+IEluc3RydWNjaW9uZXMgPC9iPiA8L2NlbnRlcj4KPHA+CgoxLglFc3RhIHRhcmVhIGRlYmUgc2VyIGVudHJlZ2FkYSBlbiBncnVwb3MgZGUgbcOheGltbyAzIHBlcnNvbmFzLiAKMi4JU2UgZGViZSBlbnZpYXIgdW5hIGNhcnBldGEgY29tcHJpbWlkYSBxdWUgY29udGVuZ2E6IHVuIGFyY2hpdm8gLlJwcm9qIChwcm95ZWN0byBlbiBSKSwgdW4gc2NyaXB0IHkgdW4gYnJldmUgaW5mb3JtZSBlbiBSIE1hcmtkb3duIGNvbiBzdXMgcmVzdWx0YWRvcywgaW5jbHV5ZW5kbyB0YWJsYXMsIGdyw6FmaWNvcywgZXRjLiwgc2Vnw7puIGNvcnJlc3BvbmRhLiAgRWwgZm9ybWF0byBkZWwgaW5mb21lIHB1ZWRlIHNlciB3b3JkIG8gcGRmIHkgc2UgZGViZSBcdGV4dGJme2luY2x1aXJ9IGVsIGFyY2hpdm8gUm1kLgozLiAgRWwgbm9tYnJlIGRlbCBhcmNoaXZvIGNvbXByaW1pZG8gZGViZSBzZXIgIlRhcmVhIDMtUi1VY2hpbGUgQXBlbGxpZG8gMS1BcGVsbGlkbyAyLUFwZWxsaWRvIDMiLgo0LiAgRWwgYXN1bnRvIGRlbCBlbWFpbCBjb24gc3UgdGFyZWEgZGViZSBzZXIgIlRhcmVhIDMtUi1VY2hpbGUgQXBlbGxpZG8gMS1BcGVsbGlkbyAyLUFwZWxsaWRvIDMiLgo1LglMYSBmZWNoYSBkZSBlbnRyZWdhIGVzIGVsIFPDoWJhZG8gMTMgZGUgT2N0dWJyZSBkZWwgMjAxOCBoYXN0YSBsYXMgMjM6NTkgaHJzIGFsIGNvcnJlbyBkZWwgY3Vyc286ICAgICAgICAgICAgICAgICAgICAgIFtyMjAxOHVjaGlsZUBnbWFpbC5jb21dKHIyMDE4dWNoaWxlQGdtYWlsLmNvbSkuIAoKLS0tCgo8ZGl2IGNsYXNzPSJxdW90ZS1jb250YWluZXIiPgoKPiDigJxUaGUgZ29hbCBpcyB0byB0dXJuIGRhdGEgaW50byBpbmZvcm1hdGlvbiwgYW5kIGluZm9ybWF0aW9uIGludG8gaW5zaWdodOKAnSAKPgo+IDxwIGFsaWduPSJyaWdodCI+IC0tICpDYXJseSBGaW9yaW5hLCBDRU8gZGUgSFAgZGVzZGUgMTk5OSBoYXN0YSAyMDA1KiA8L3A+Cgo8L2Rpdj4KCmBgYHtyLCByZXN1bHRzPSdoaWRlJ30KaWYoIXJlcXVpcmUoInBhY21hbiIpKSBpbnN0YWxsLnBhY2thZ2VzKCJwYWNtYW4iKQpwX2xvYWQoInRpZHl2ZXJzZSIsICJtYXBzIiwgImx1YnJpZGF0ZSIsICJwbG90bHkiKQpgYGAKCjxicj4KCiMgUHJlZ3VudGEgMSB7LnRhYnNldCAtIC50YWJzZXQtZmFkZX0KCiMjIFByZWd1bnRhIDEuMSB7LX0KClVzdGVkIGVuIGxhIFRhcmVhIDEgKHByZWd1bnRhIDEuNSkgdHV2byBxdWUgaWRlbnRpZmljYXIgZWwgcG9yY2VudGFqZSBkZSBwZWzDrWN1bGFzIGVzdHJlbmFkYXMgcG9yIGTDqWNhZGEuIEEgcGFydGlyIGRlbCAqZGF0YSBmcmFtZSogb2J0ZW5pZG8sIGNvbnN0cnV5YSB1biAqcGllIGNoYXJ0KiB1c2FuZG8gbGEgbGlicmVyw61hICpwbG90bHkqLiAoKjIwIHB1bnRvcyopCgpgYGB7ciwgZXZhbCA9IFRSVUUsIGVjaG8gPSBUUlVFfQptb3ZpZV9kYXRhc2V0IDwtIHJlYWQuY3N2KCJEYXRhc2V0cy9tb3ZpZV9kYXRhc2V0LmNzdiIpCgojIHBvcmNlbnRhamUgZGUgcGVsaWN1bGFzIHBvciBkZWNhZGEgCmRlY2FkZV9tb3ZpZXMgPC0gbW92aWVfZGF0YXNldCAlPiUgCiAgICAgICAgICAgICAgICAgbmEub21pdCgpICU+JSAKICAgICAgICAgICAgICAgICBtdXRhdGUoeWVhciA9IHllYXIocmVsZWFzZV9kYXRlKSwgZGVjYWRlID0geWVhciAtIHllYXIlJTEwLCBuID0gbigpKSAlPiUgCiAgICAgICAgICAgICAgICAgZ3JvdXBfYnkoZGVjYWRlLCBuKSAlPiUgCiAgICAgICAgICAgICAgICAgc3VtbWFyaXNlKG4oKSkgJT4lIAogICAgICAgICAgICAgICAgIG11dGF0ZShwZXJjZW50YWdlID0gYG4oKWAvbikgJT4lIAogICAgICAgICAgICAgICAgIG11dGF0ZShsYWJlbCA9IHBhc3RlMCgiRMOpY2FkYSAiLGRlY2FkZSkpCmBgYAoKYGBge3J9CnAgPC0gcGxvdF9seShkZWNhZGVfbW92aWVzLCBsYWJlbHMgPSB+IGxhYmVsLCB2YWx1ZXMgPSB+cGVyY2VudGFnZSwgdHlwZSA9ICJwaWUiLAogICAgICAgICAgICAgIHRleHRwb3NpdGlvbiA9ICJpbnNpZGUiLAogICAgICAgICAgICAgIHRleHRpbmZvID0gInBlcmNlbnQiLAogICAgICAgICAgICAgIGhvdmVyaW5mbyA9ICd0ZXh0JywKICAgICAgICAgICAgICB0ZXh0ID0gfiBwYXN0ZSgnJScsIHJvdW5kKHBlcmNlbnRhZ2UqMTAwLCAyKSksCiAgICAgICAgICAgICAgbWFya2VyID0gbGlzdChjb2xvcnMgPSBjb2xvcnMsCiAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGlzdChjb2xvciA9ICcjRkZGRkZGJywgd2lkdGggPSAxKSkpICU+JQogICAgICAgICBsYXlvdXQodGl0bGUgPSAiUG9yY2VudGFqZSBkZSBwZWzDrWN1bGFzIHBvciBkw6ljYWRhIiwKICAgICAgICAgeGF4aXMgPSBsaXN0KHNob3dncmlkID0gRkFMU0UsIHplcm9saW5lID0gRkFMU0UsIHNob3d0aWNrbGFiZWxzID0gRkFMU0UpLAogICAgICAgICB5YXhpcyA9IGxpc3Qoc2hvd2dyaWQgPSBGQUxTRSwgemVyb2xpbmUgPSBGQUxTRSwgc2hvd3RpY2tsYWJlbHMgPSBGQUxTRSkpCnAKYGBgCgoKIyMgUHJlZ3VudGEgMS4yIHstfQoKQ29uc2lkZXJhbmRvIGxhIFRhcmVhIDEgKHByZWd1bnRhIDEuNiksIGluZGVudGlmaXF1ZSBlbCBwcmVzdXB1ZXN0byBwcm9tZWRpbyAoKmJ1ZGdldCopIHBvciBlc3RhZG8geSBwcmVzZW50ZWxvIGVzdGEgdmV6IHV0aWxpemFuZG8gZWwgbWFwYSBkZSBsb3MgRXN0YWRvcyBVbmlkb3MuICAoKjIwIHB1bnRvcyopCgpgYGB7cn0KIyBjYXJnYW1vcyBsYSBsaXN0YSB5IGxhIHRyYW5zZm9ybWFzIGEgY2hhcmFjdGVyCmxpc3RhX2VzdGFkb3MgPC0gcmVhZC5jc3YoIkRhdGFzZXRzL2VzdGFkb3MuY3N2IikgJT4lIAogICAgICAgICAgICAgICAgIGFzLm1hdHJpeCgpICU+JSAKICAgICAgICAgICAgICAgICBhcy5jaGFyYWN0ZXIoKQpgYGAKCmBgYHtyLCBldmFsID0gVFJVRSwgZWNobyA9IFRSVUV9CiMgUHJvbWVkaW8gZGUgcHJlc3VwdWVzdG8gcG9yIGVzdGFkbyBkZSBFc3RhZG9zIFVuaWRvcwprZXl3b3JkcyA8LSByZWFkLmNzdigiRGF0YXNldHMva2V5d29yZHMuY3N2IikKCnBlbGljdWxhc19lc3RhZG8gPC0ga2V5d29yZHMgJT4lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGtleXdvcmRzICVpbiUgbGlzdGFfZXN0YWRvcykgJT4lCiAgICAgICAgICAgICAgICAgICAgcmlnaHRfam9pbihtb3ZpZV9kYXRhc2V0LCBieSA9ICJpZCIpICU+JSAKICAgICAgICAgICAgICAgICAgICBncm91cF9ieShrZXl3b3JkcykgJT4lICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIHN1bW1hcmlzZShjb3VudD1uKCksIG1lYW4oYnVkZ2V0KSkgJT4lICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIG11dGF0ZShub21icmVfZXN0YWRvPWtleXdvcmRzKSAlPiUgICAgICAgCiAgICAgICAgICAgICAgICAgICAgcmlnaHRfam9pbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgdGliYmxlKG5vbWJyZV9lc3RhZG89bGlzdGFfZXN0YWRvcyksICAKICAgICAgICAgICAgICAgICAgICAgIGJ5PSJub21icmVfZXN0YWRvIiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KG5vbWJyZV9lc3RhZG8sIGNvdW50LCBgbWVhbihidWRnZXQpYCkgJT4lICAgICAgICAKICAgICAgICAgICAgICAgICAgICBtdXRhdGUoCiAgICAgICAgICAgICAgICAgICAgICBjb3VudD1pZmVsc2UoaXMubmEoY291bnQpLDAsY291bnQpICAgIAogICAgICAgICAgICAgICAgICAgICkgJT4lCiAgICAgICAgICAgICAgICAgICAgcmVuYW1lKCJwcmVzdXB1ZXN0byIgPSBgbWVhbihidWRnZXQpYCkgJT4lIAogICAgICAgICAgICAgICAgICAgIGFycmFuZ2UoZGVzYyhjb3VudCkpICAgCmBgYAoKYGBge3J9Cm1hcGFfZXN0YWRvcyA8LSBtYXBfZGF0YSgic3RhdGUiKSAgCmBgYAoKYGBge3J9CnN0YXRlX25hbWU8LSBhZ2dyZWdhdGUoY2JpbmQobG9uZyxsYXQpIH4gcmVnaW9uLCBkYXRhID0gbWFwYV9lc3RhZG9zLCBtZWFuKQpgYGAKCmBgYHtyLCBmaWcud2lkdGg9MTIsIGZpZy5oZWlnaHQ9OH0KZzEgPC0gZ2dwbG90KHBlbGljdWxhc19lc3RhZG8pICsgCiAgICAgIGdlb21fbWFwKGFlcyhtYXBfaWQgPSBub21icmVfZXN0YWRvLCBmaWxsID0gcHJlc3VwdWVzdG8vMTAwMDAwMCksIG1hcCA9IG1hcGFfZXN0YWRvcywgY29sb3IgPSAid2hpdGUiKSArIAogICAgICBleHBhbmRfbGltaXRzKHggPSBtYXBhX2VzdGFkb3MkbG9uZywgeSA9IG1hcGFfZXN0YWRvcyRsYXQpICsKICAgICAgbGFicyh0aXRsZSA9IlByZXN1cHVlc3RvIHByb21lZGlvIHBvciBFc3RhZG9zIiwgc3VidGl0bGUgPSAiRXN0YWRvcyBVbmlkb3MiKSArICB4bGFiKCIiKSArIHlsYWIoIiIpICsKICAgICAgdGhlbWVfYncoKSArIGNvb3JkX21hcCgiYWxiZXJzIiwgbGF0MD0zOSwgbGF0MT00NSkgKwogICAgICBzY2FsZV9maWxsX2dyYWRpZW50bigiQnVkZ2V0ICgkTU0pIiwgY29sb3VycyA9IHJldihyYWluYm93KDQpKSkgKwogICAgICBnZW9tX3RleHQoZGF0YSA9IHN0YXRlX25hbWUsIGFlcyhsYWJlbCA9ICBhcy5jaGFyYWN0ZXIocmVnaW9uKSwgeCA9IGxvbmcsIHkgPSBsYXQpLCBzaXplID0gMi41KSAKZzEKYGBgCgoKPGJyPgoKIyBQcmVndW50YSAyIHsudGFic2V0IC19IAoKQSBwYXJ0aXIgZGUgbGFzIHZhcmlhYmxlcyBzZWxlY2Npb25hZGFzIGRlbCAqV29ybGQgRGV2ZWxvcG1lbnQgSW5kaWNhdG9ycyogZGUgc3UgVGFyZWEgMiwgcmVwcmVzZW50ZSBlbiB1biBtYXBhIGxvcyB2YWxvcmVzIHF1ZSBhc3VtZSBjYWRhIHZhcmlhYmxlIGVuIDE5OTAgeSAyMDE1LgoKYGBge3IsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CmlmKCFyZXF1aXJlKCJwYWNtYW4iKSkgaW5zdGFsbC5wYWNrYWdlcygicGFjbWFuIikKcF9sb2FkKCJ0aWR5dmVyc2UiLCAiV0RJIiwgImdyaWRFeHRyYSIsICJncmlkIiwgInNjYWxlcyIsICJtYXBzIiwgImdndGhlbWVzIiwgImdnYW5pbWF0ZSIpCmBgYAoKYGBge3J9CndvcmxkIDwtIGdncGxvdCgpICsgYm9yZGVycygid29ybGQiLCBjb2xvdXIgPSAiYmxhY2siLCBmaWxsID0gImdyYXk4MCIpICsgdGhlbWVfbWFwKCkgKyAKICAgICAgICAgY29vcmRfY2FydGVzaWFuKHlsaW0gPSBjKC01MCwgOTApKSAKYGBgCgpgYGB7ciwgZXZhbD1UUlVFLCBlY2hvPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CiMiTlkuR0RQLlBDQVAuUFAuQ0QiIC0+IFBJQiBQUFAKIyJCTi5DQUIuWE9LQS5HRC5aUyIgLT4gYmFsYW5jZSBjdWVudGEgY29ycmllbnRlIGNvbW8gcG9yY2VudGFqZSBkZWwgcGliCgp3ZGlfZGF0YSA8LSBhcy50aWJibGUoCiAgICAgICAgICAgIFdESShpbmRpY2F0b3IgPSBjKCJOWS5HRFAuUENBUC5QUC5DRCIsICJCTi5DQUIuWE9LQS5HRC5aUyIpLCAKICAgICAgICAgICAgICAgIGNvdW50cnkgPSAiYWxsIiwgCiAgICAgICAgICAgICAgICBleHRyYSA9IFRSVUUsIAogICAgICAgICAgICAgICAgc3RhcnQgPSAxOTkwLCAKICAgICAgICAgICAgICAgIGVuZCA9IDIwMTUpCiAgICAgICAgICAgICkKYGBgCgpgYGB7ciwgZXZhbCA9IFRSVUUsIGVjaG8gPSBUUlVFfQojIk5ZLkdEUC5QQ0FQLlBQLkNEIiAtPiBQSUIgUFBQCiMiQk4uQ0FCLlhPS0EuR0QuWlMiIC0+IGJhbGFuY2UgY3VlbnRhIGNvcnJpZW50ZSBjb21vIHBvcmNlbnRhamUgZGVsIHBpYgoKd2RpX2RhdGEgPC0gd2RpX2RhdGEgJT4lIAogICAgICAgICAgICBkcGx5cjo6c2VsZWN0KGNvdW50cnk6cmVnaW9uKSAlPiUKICAgICAgICAgICAgZHBseXI6OnJlbmFtZShwaWIgPSBOWS5HRFAuUENBUC5QUC5DRCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VlbnRhX2NvcnJpZW50ZSA9IEJOLkNBQi5YT0tBLkdELlpTKSAlPiUgCiAgICAgICAgICAgIGRwbHlyOjpmaWx0ZXIoIHllYXIgJWluJSBjKCIxOTkwIiwgIjIwMTUiKSAmIHJlZ2lvbiAhPSAiQWdncmVnYXRlcyIpICU+JSAKICAgICAgICAgICAgbmEub21pdCgpICU+JSAKICAgICAgICAgICAgZ3JvdXBfYnkoY291bnRyeSwgeWVhcikgJT4lIAogICAgICAgICAgICBhcnJhbmdlKHllYXIpCgpgYGAKCmBgYHtyfQp3ZGlfZGF0YV9waWIgPC0gd2RpX2RhdGEgJT4lCiAgICAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KHBpYix5ZWFyLGNvdW50cnkpICU+JSAKICAgICAgICAgICAgICAgIHJlbmFtZShyZWdpb24gPSBjb3VudHJ5KSAKCndkaV9kYXRhX2NjIDwtIHdkaV9kYXRhICU+JQogICAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KGN1ZW50YV9jb3JyaWVudGUseWVhcixjb3VudHJ5KSAlPiUgCiAgICAgICAgICAgICAgIHJlbmFtZShyZWdpb24gPSBjb3VudHJ5KSAKYGBgCgpgYGB7cn0Kd29ybGRfbWFwIDwtIG1hcF9kYXRhKCJ3b3JsZCIpICU+JSAKICAgICAgICAgICAgIGxlZnRfam9pbih3ZGlfZGF0YV9waWIsIGJ5ID0gInJlZ2lvbiIpIAogIAp3b3JsZF9tYXBfYW5pbWF0ZSA8LSB3b3JsZF9tYXAgJT4lIAogICAgICAgICAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KGxvbmcsIGxhdCwgZ3JvdXAsIHllYXIsIHBpYiwgcmVnaW9uKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgIGFycmFuZ2UoeWVhcikKCmluaXQgPC0gdGliYmxlKAogICAgICAgICAgeWVhciA9IDE5OTAsCiAgICAgICAgICBwaWIgPSAwLCBsb25nID0gMCwgbGF0ID0gMAogICAgICAgICkKCmZpbiA8LSB0aWJibGUoCiAgICAgICAgICB5ZWFyID0gMjAxNSwKICAgICAgICAgIHBpYiA9IDAsIGxvbmcgPSAwLCBsYXQgPSAwCiAgICAgICAgKQoKbWFwX2FuaW1hdGUgPC0gd29ybGQgKyAKICAgICAgICAgICAgICAgZ2VvbV9wb2x5Z29uKGRhdGEgPSB3b3JsZF9tYXBfYW5pbWF0ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGxvbmcsIHkgPSBsYXQsIGdyb3VwID0gZ3JvdXAsIGZpbGwgPSBwaWIvMTAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IHllYXIsIGN1bXVsYXRpdmUgPSBGQUxTRSksIGFscGhhID0gMC41KSArIAogICAgICAgICAgICAgICBnZW9tX3BvbHlnb24oZGF0YSA9IGluaXQsIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZmlsbCA9IHBpYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IHllYXIsIGN1bXVsYXRpdmUgPSBGQUxTRSksIGFscGhhID0gMCkgKwogICAgICAgICAgICAgICBnZW9tX3BvbHlnb24oZGF0YSA9IGZpbiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IGxvbmcsIHkgPSBsYXQsIGZpbGwgPSBwaWIsIGZyYW1lID0geWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdW11bGF0aXZlID0gRkFMU0UpLCBhbHBoYSA9IDApICsgCiAgICAgICAgICAgICAgIGxhYnModGl0bGUgPSAiUHJvZHVjdG8gSW50ZXJubyBCcnV0bywgIikgKwogICAgICAgICAgICAgICBsYWJzKGZpbGwgPSAnUElCIChrKScpICsgCiAgICAgICAgICAgICAgIGxhYnMoY2FwdGlvbiA9IAogICAgICAgICAgICAgICAgICAgICJNYXBhIHBvciBHYWJyaWVsIENhYnJlcmEsIEBHYWJvX0NnXG5GdWVudGU6IFdvcmxkIERldmVsb3BtZW50IEluZGljYXRvcnMiKSArCiAgICAgICAgICAgICAgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUsIHZqdXN0ID0gMC4wNSwgc2l6ZT0yNSkpICsKICAgICAgICAgICAgICAgdGhlbWUocGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMCwgY29sb3I9ImdyYXk0MCIsIHNpemU9MTUpKSArCiAgICAgICAgICAgICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9IGMoLjUsIC0uMDI1KSwgCiAgICAgICAgICAgICAgIGxlZ2VuZC5kaXJlY3Rpb24gPSAiaG9yaXpvbnRhbCIsIAogICAgICAgICAgICAgICBsZWdlbmQudGl0bGUuYWxpZ24gPSAwLAogICAgICAgICAgICAgICBsZWdlbmQua2V5LnNpemUgPSB1bml0KDEuMywgImNtIiksCiAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZT1lbGVtZW50X3RleHQoc2l6ZT0xNyksIAogICAgICAgICAgICAgICBsZWdlbmQudGV4dD1lbGVtZW50X3RleHQoc2l6ZT0xMykpCgpnZ2FuaW1hdGUobWFwX2FuaW1hdGUsIGludGVydmFsID0gMC4yLCB0aXRsZV9mcmFtZSA9VCwgYW5pLndpZHRoPTE2MDAsIGFuaS5oZWlnaHQ9ODIwLCAKICAgICAgICAgIGRwaT04MDAsICJwaWJfMTk5MF8yMDE1LmdpZiIpCmBgYAoKPGJyPgoKPGNlbnRlcj4KCiFbTWFwYSBQcm9kdWN0byBJbnRlcm5vIEJydXRvXShwaWJfMTk5MF8yMDE1LmdpZikKCjwvY2VudGVyPgoKYGBge3J9CndkaV9kYXRhX3BpYiA8LSB3ZGlfZGF0YSAlPiUKICAgICAgICAgICAgICAgIGRwbHlyOjpzZWxlY3QocGliLHllYXIsY291bnRyeSkgJT4lIAogICAgICAgICAgICAgICAgcmVuYW1lKHJlZ2lvbiA9IGNvdW50cnkpIAoKd2RpX2RhdGFfY2MgPC0gd2RpX2RhdGEgJT4lCiAgICAgICAgICAgICAgIGRwbHlyOjpzZWxlY3QoY3VlbnRhX2NvcnJpZW50ZSx5ZWFyLGNvdW50cnkpICU+JSAKICAgICAgICAgICAgICAgcmVuYW1lKHJlZ2lvbiA9IGNvdW50cnkpIApgYGAKCmBgYHtyfQp3b3JsZF9tYXAgPC0gbWFwX2RhdGEoIndvcmxkIikgJT4lIAogICAgICAgICAgICAgbGVmdF9qb2luKHdkaV9kYXRhX2NjLCBieSA9ICJyZWdpb24iKSAKICAKd29ybGRfbWFwX2FuaW1hdGUgPC0gd29ybGRfbWFwICU+JSAKICAgICAgICAgICAgICAgICAgICAgZHBseXI6OnNlbGVjdChsb25nLCBsYXQsIGdyb3VwLCB5ZWFyLCBjdWVudGFfY29ycmllbnRlLCByZWdpb24pICU+JSAKICAgICAgICAgICAgICAgICAgICAgYXJyYW5nZSh5ZWFyKQoKaW5pdCA8LSB0aWJibGUoCiAgICAgICAgICB5ZWFyID0gMTk5MCwKICAgICAgICAgIGN1ZW50YV9jb3JyaWVudGUgPSAwLCBsb25nID0gMCwgbGF0ID0gMAogICAgICAgICkKCmZpbiA8LSB0aWJibGUoCiAgICAgICAgICB5ZWFyID0gMjAxNSwKICAgICAgICAgIGN1ZW50YV9jb3JyaWVudGUgPSAwLCBsb25nID0gMCwgbGF0ID0gMAogICAgICAgICkKCm1hcF9hbmltYXRlIDwtIHdvcmxkICsgCiAgICAgICAgICAgICAgIGdlb21fcG9seWdvbihkYXRhID0gd29ybGRfbWFwX2FuaW1hdGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IGdyb3VwLCBmaWxsID0gY3VlbnRhX2NvcnJpZW50ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IHllYXIsIGN1bXVsYXRpdmUgPSBGQUxTRSksICBhbHBoYSA9IDAuNSkgKyAKICAgICAgICAgICAgICAgZ2VvbV9wb2x5Z29uKGRhdGEgPSBpbml0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZmlsbCA9IGN1ZW50YV9jb3JyaWVudGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUgPSB5ZWFyLCBjdW11bGF0aXZlID0gRkFMU0UpLCBhbHBoYSA9IDApICsKICAgICAgICAgICAgICAgZ2VvbV9wb2x5Z29uKGRhdGEgPSBmaW4sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBmaWxsID0gY3VlbnRhX2NvcnJpZW50ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZSA9IHllYXIsIGN1bXVsYXRpdmUgPSBGQUxTRSksIGFscGhhID0gMCkgKyAKICAgICAgICAgICAgICAgbGFicyh0aXRsZSA9ICJDdWVudGEgQ29ycmllbnRlLCAiKSArCiAgICAgICAgICAgICAgIGxhYnMoZmlsbCA9ICdDQycpICsgCiAgICAgICAgICAgICAgIGxhYnMoY2FwdGlvbiA9IAogICAgICAgICAgICAgICAgICAgIk1hcGEgcG9yIEdhYnJpZWwgQ2FicmVyYSwgQEdhYm9fQ2dcbkZ1ZW50ZTogV29ybGQgRGV2ZWxvcG1lbnQgSW5kaWNhdG9ycyIpICsKICAgICAgICAgICAgICAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSwgdmp1c3QgPSAwLjA1LCBzaXplPTI1KSkgKwogICAgICAgICAgICAgICB0aGVtZShwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLCBjb2xvcj0iZ3JheTQwIiwgc2l6ZT0xNSkpICsKICAgICAgICAgICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gYyguNSwgLS4wMjUpLCAKICAgICAgICAgICAgICAgbGVnZW5kLmRpcmVjdGlvbiA9ICJob3Jpem9udGFsIiwgCiAgICAgICAgICAgICAgIGxlZ2VuZC50aXRsZS5hbGlnbiA9IDAsCiAgICAgICAgICAgICAgIGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMS4zLCAiY20iKSwKICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlPWVsZW1lbnRfdGV4dChzaXplPTE3KSwgCiAgICAgICAgICAgICAgIGxlZ2VuZC50ZXh0PWVsZW1lbnRfdGV4dChzaXplPTEzKSkKCgpnZ2FuaW1hdGUobWFwX2FuaW1hdGUsIGludGVydmFsID0gMC4yLHRpdGxlX2ZyYW1lID1ULCBhbmkud2lkdGg9MTYwMCwgYW5pLmhlaWdodD04MjAsIAogICAgICAgICAgZHBpPTgwMCwiQ0NfMTk5MF8yMDE1LmdpZiIpCmBgYAoKPGJyPgoKPGNlbnRlcj4KCiFbTWFwYSBDdWVudGEgQ29ycmllbnRlXShDQ18xOTkwXzIwMTUuZ2lmKQoKPC9jZW50ZXI+Cgo8YnI+CgojIFByZWd1bnRhIDMgey50YWJzZXQgLX0gCgpWaXNpdGUgZWwgc2l0aW8gd2ViIFtodHRwOi8vZGF0b3MuZ29iLmNsL10oaHR0cDovL2RhdG9zLmdvYi5jbC8pIHkgZGVzY2FyZ3VlIHVuYSBiYXNlIGRlIGRhdG9zIGRlIHN1IHByZWZlcmVuY2lhXltEZWJlIGNvbnRlbmVyIGxhcyBjb211bmFzIGRlIGxhIHJlZ2nDs24gTWV0cm9wb2xpdGFuYS5dLCBqdXN0aWZpY2FuZG8gc3UgZWxlY2Npw7NuLiBMdWVnbywgcmVwcmVzZW50ZSBsb3MgZGF0b3Mgc2VsZWNjaW9uYWRvcyBlbiB1biBtYXBhIGRlIHVuYSBvIHZhcmlhcyBkZSBsYXMgY29tdW5hcyBkZSBsYSByZWdpw7NuIE1ldHJvcG9saXRhbmEuIExvcyBtYXBhcyB2ZWN0b3JpYWxlcyBwdWVkZW4gc2VyIGRlc2NhcmdhZG9zIGRlIFtodHRwczovL3d3dy5iY24uY2xdKGh0dHBzOi8vd3d3LmJjbi5jbC9zaWl0L21hcGFzX3ZlY3RvcmlhbGVzKS4KCmBgYHtyLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQojIGNhcmdhbW9zIGxpYnJlcmlhcyAKaWYoIXJlcXVpcmUoInBhY21hbiIpKSBpbnN0YWxsLnBhY2thZ2VzKCJwYWNtYW4iKSAKcF9sb2FkKCJnZ21hcCIsInRpZHl2ZXJzZSIsInJnZGFsIiwgInNwIiwgInRtYXB0b29scyIsICJicm9vbSIsICJyYXN0ZXIiLCAicmVhZHhsIiAsIAogICAgICAgImdndGhlbWVzIiwgInNwbGl0c3RhY2tzaGFwZSIsICJEVCIpCmBgYAoKYGBge3IsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHJlc3VsdHM9J2hpZGUnfQpkaXZpc2lvbl9jb211bmFsIDwtIHJlYWRPR1IoZHNuID0gIkRhdGFzZXRzL2RpdmlzaW9uX2NvbXVuYWwiLCBsYXllcj0iZGl2aXNpb25fY29tdW5hbCIpCmRhdGF0YWJsZShkaXZpc2lvbl9jb211bmFsQGRhdGEsIGNsYXNzID0gJ2NlbGwtYm9yZGVyIHN0cmlwZScsZXh0ZW5zaW9ucyA9ICdGaXhlZENvbHVtbnMnLCAKICAgICAgICAgIG9wdGlvbnMgPSBsaXN0KCBkb20gPSAndCcsIHNjcm9sbFggPSBUUlVFLCBzY3JvbGxDb2xsYXBzZSA9IFRSVUUpKQpgYGAKCmBgYHtyfQpkYXRhdGFibGUoaGVhZChkaXZpc2lvbl9jb211bmFsQGRhdGFbZGl2aXNpb25fY29tdW5hbCROT01fUFJPViAlaW4lIGMoIlNhbnRpYWdvIiksIF0sNyksIAogICAgY2xhc3MgPSAnY2VsbC1ib3JkZXIgc3RyaXBlJywgZXh0ZW5zaW9ucyA9ICdGaXhlZENvbHVtbnMnLCBvcHRpb25zID0gbGlzdCgKICAgICAgICAgIGRvbSA9ICd0Jywgc2Nyb2xsWCA9IFRSVUUsIHNjcm9sbENvbGxhcHNlID0gVFJVRSkpCgpzZWxlY3RfcHJvdiA8LSBkaXZpc2lvbl9jb211bmFsJE5PTV9QUk9WICVpbiUgYygiU2FudGlhZ28iKQpjb211bmFzIDwtIGZvcnRpZnkoZGl2aXNpb25fY29tdW5hbFtzZWxlY3RfcHJvdixdLCByZWdpb249Ik5PTV9DT00iKSAlPiUgCiAgICAgICAgICAgcmVuYW1lKENPTVVOQSA9IGlkKSAKCmNvbXVuYXMkQ09NVU5BIDwtIHRvbG93ZXIoY29tdW5hcyRDT01VTkEpCmBgYAoKYGBge3J9Cmdhc3RvX21vcCA8LSByZWFkX3hsc3goIkRhdGFzZXRzL2dhc3RvX21vcC54bHN4IikKCmdhc3RvX21vcCA8LSBnYXN0b19tb3AgJT4lIAogICAgICAgICAgICAgZmlsdGVyKGBSRUdJw5NOYCA9PSAiTWV0cm9wb2xpdGFuYSIpICU+JSAgCiAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KENPTVVOQSwgYEHDkU9gLCBgSU5WRVJTScOTTiAoTUlMRVMgREUgJCBERSBDQURBIEHDkU8pYCwgYFJFR0nDk05gKSAlPiUgCiAgICAgICAgICAgICByZW5hbWUoaW52ZXJzaW9uID0gYElOVkVSU0nDk04gKE1JTEVTIERFICQgREUgQ0FEQSBBw5FPKWApCgpnYXN0b19tb3AkQ09NVU5BIDwtIHRvbG93ZXIoZ2FzdG9fbW9wJENPTVVOQSApCgpgYGAKCgpgYGB7cn0KbW9wIDwtIGdhc3RvX21vcCAlPiUgCiAgICAgICBncm91cF9ieShDT01VTkEpICU+JSAKICAgICAgIGZpbHRlcihyb3dfbnVtYmVyKENPTVVOQSkgPT0gMSkgJT4lIAogICAgICAgZHBseXI6OnNlbGVjdChDT01VTkEsIGludmVyc2lvbiwgYEHDkU9gKSAKICAgICAgICAgICAgCm1vcCA8LSBjU3BsaXQobW9wLCAiQ09NVU5BIiwgc2VwID0gIiwgIiwgZGlyZWN0aW9uID0gImxvbmciKQptb3AgPC0gY1NwbGl0KG1vcCwgIkNPTVVOQSIsIHNlcCA9ICIgeSAiLCBkaXJlY3Rpb24gPSAibG9uZyIpWy0xXQoKZGF0YSA8LSBtb3AgJT4lIAogICAgICAgIGxlZnRfam9pbihjb211bmFzLCBieSA9ICJDT01VTkEiKSAKCmNvbV9uYW1lIDwtIGFnZ3JlZ2F0ZShjYmluZChsb25nLGxhdCkgfiBDT01VTkEsIGRhdGEgPSBkYXRhLCBtZWFuKQpgYGAKCgpgYGB7ciwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZGF0YSA8LSBkYXRhICU+JSAKICAgICAgICByZW5hbWUoeWVhciA9IGBBw5FPYCkgJT4lIAogICAgICAgIG5hLm9taXQoKQoKaW5pdCA8LSB0aWJibGUoCiAgICAgICAgICB5ZWFyID0gMjAxMSwKICAgICAgICAgIGludmVyc2lvbiA9IDAsIGxvbmcgPSAwLCBsYXQgPSAwCiAgICAgICAgKQoKZmluIDwtIHRpYmJsZSgKICAgICAgICAgIHllYXIgPSAyMDE2LAogICAgICAgICAgaW52ZXJzaW9uID0gMCwgbG9uZyA9IDAsIGxhdCA9IDAKICAgICAgICApCgptYXBfYW5pbWF0ZSA8LSBnZ3Bsb3QoKSArIAogICAgICAgICAgICAgICBnZW9tX3BvbHlnb24oZGF0YSA9IGNvbXVuYXMsIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZ3JvdXAgPSBncm91cCksIAogICAgICAgICAgICAgICAgICAgZmlsbCA9ICJ3aGl0ZSIsIGNvbG9yID0gImJsYWNrIiwgc2l6ZSA9IC41LCBzaG93LmxlZ2VuZCA9IEZBTFNFKSAgKyAKICAgICAgICAgICAgICAgdGhlbWVfbWFwKCkgKyAKICAgICAgICAgICAgICAgeGxpbShtaW4oY29tdW5hcyRsb25nKSxtYXgoY29tdW5hcyRsb25nKSkgKyB5bGltKG1pbihjb211bmFzJGxhdCksCiAgICAgICAgICAgICAgICAgICAgbWF4KGNvbXVuYXMkbGF0KSkgKwogICAgICAgICAgICAgICBnZW9tX3BvbHlnb24oZGF0YSA9IGRhdGEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IGdyb3VwLCBmaWxsID0gaW52ZXJzaW9uLzEwMDAwMDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUgPSB5ZWFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1bXVsYXRpdmUgPSBUUlVFKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkgKyAKICAgICAgICAgICAgICAgZ2VvbV9wb2x5Z29uKGRhdGEgPSBpbml0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZmlsbCA9IGludmVyc2lvbi8xMDAwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lID0geWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdW11bGF0aXZlID0gVFJVRSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwKSArCiAgICAgICAgICAgICAgIGdlb21fcG9seWdvbihkYXRhID0gZmluLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gbG9uZywgeSA9IGxhdCwgZmlsbCA9IGludmVyc2lvbi8xMDAwMDAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lID0geWVhciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdW11bGF0aXZlID0gVFJVRSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwKSArIAogICAgICAgICAgICAgICBsYWJzKHRpdGxlID0gIkdhc3RvIE1PUCwgIikgKwogICAgICAgICAgICAgICBsYWJzKGZpbGwgPSAnR2FzdG8gKE1JbGxvbmVzKScpICsgCiAgICAgICAgICAgICAgIGxhYnMoY2FwdGlvbiA9IAogICAgICAgICAgICAgICAgICAgICJNYXBhIHBvciBHYWJyaWVsIENhYnJlcmEsIEBHYWJvX0NnXG5GdWVudGU6IERhdG9zIEdvYmllcm5vIGRlIENoaWxlIikgKwogICAgICAgICAgICAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41LCB2anVzdCA9IDAuMDUsIHNpemU9MjUpKSArCiAgICAgICAgICAgICAgIHRoZW1lKHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAsIGNvbG9yPSJncmF5NDAiLCBzaXplPTE1KSkgKwogICAgICAgICAgICAgICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKC41LCAtLjAyNSksIAogICAgICAgICAgICAgICBsZWdlbmQuZGlyZWN0aW9uID0gImhvcml6b250YWwiLCAKICAgICAgICAgICAgICAgbGVnZW5kLnRpdGxlLmFsaWduID0gMCwKICAgICAgICAgICAgICAgbGVnZW5kLmtleS5zaXplID0gdW5pdCgxLjMsICJjbSIpLAogICAgICAgICAgICAgICBsZWdlbmQudGl0bGU9ZWxlbWVudF90ZXh0KHNpemU9MTcpLCAKICAgICAgICAgICAgICAgbGVnZW5kLnRleHQ9ZWxlbWVudF90ZXh0KHNpemU9MTMpKSArIAogICAgICAgICAgICAgICBnZW9tX3RleHQoZGF0YSA9IGNvbV9uYW1lLCBhZXMobGFiZWwgPSAgYXMuY2hhcmFjdGVyKENPTVVOQSksIHggPSBsb25nLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gbGF0KSwgc2l6ZSA9IDMuNSkgCgpnZ2FuaW1hdGUobWFwX2FuaW1hdGUsIGludGVydmFsID0gMC4yLCB0aXRsZV9mcmFtZSA9VCwgYW5pLndpZHRoPTE2MDAsIGFuaS5oZWlnaHQ9MTAyMCwgCiAgICAgICAgICBkcGk9ODUwLCAibW9wXzIwMTFfMjAxNi5naWYiKQpgYGAKCjxicj4KCjxjZW50ZXI+CgohW0dhc3RvIE1pbmlzdGVyaW8gZGUgb2JyYXMgcMO6YmxpY2FzOiBQZXJpb2RvIDIwMTEgLSAyMDE2XShtb3BfMjAxMV8yMDE2LmdpZikKCjwvY2VudGVyPgoKPGJyPgoKCgoKCgoK

Disclaimer : La información contenida en esta página está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional y fue construida bajo mi rol como ayudante (Teacher Assistant) de la Catedra Topicos en economía y negocios utilizando R ( R for economy and business ).
Licencia Creative Commons